# Maintainer: Bruno Pagani <archange@archlinux.org>
# Maintainer: Maxime Gauduin <alucryd@archlinux.org>
# Contributor: Frederik Schwan <frederik dot schwan at linux dot com>

pkgname=gitea
pkgver=1.18.5
pkgrel=1
pkgdesc="Painless self-hosted Git service, community managed."
arch=(loong64 x86_64)
url="https://gitea.io"
license=(MIT)
depends=(git)
makedepends=(go nodejs npm)
optdepends=(
  'mariadb: MariaDB support'
  'memcached: MemCached support'
  'openssh: GIT over SSH support'
  'pam: Authentication via PAM support'
  'postgresql: PostgreSQL support'
  'redis: Redis support'
  'sqlite: SQLite support'
)
checkdepends=(openssh)
options=(!lto)
_tag=2b5f49c6f40731b00023c39d6efcfade37db56b1 # git rev-parse v${pkgver}
source=(git+https://github.com/go-gitea/gitea.git#tag=${_tag}?signed
        gitea.tmpfiles
        gitea.service
        gitea.sysusers
        gitea-loong64.patch)
sha256sums=('SKIP'
            '9f63a517e8da6865fa6d9e87f6b08fe25ea56285304115e052809663c48dc3d7'
            'b16d02a9f32a17cc14dfa46a980bad795a4ed744627e6342248f60236dc2be43'
            '7e7b798b8ce035c1fb55993ece41c5efb6cad5922708866804fa50ada0cf9fa5'
            'c0cc614ad1f9afc6124174365df000fe09e3774cc38a4690c9ddc696ebef21d8')
validpgpkeys=(
  B56E3C7437A49E136862F5DE9D8A57ADAA232E95  # Matti Ranta <matti@mdranta.net>, retrieved from https://github.com/techknowlogick.gpg
  D8F9672D77C0BB60A024C23EDFDE60A0093EB926  # Lauris Bukšis-Haberkorns <lauris@nix.lv>, retrieved from https://github.com/lafriks.gpg
  BA66F67FD73F7058D712D308C3B7C91B632F738A  # Lunny Xiao <xiaolunwen@gmail.com>, retrieved from https://github.com/lunny.gpg
  8722B61D72341082553B201CB8BE6D610E61C862  # '6543' <6543@obermui.de>, retrived from https://github.com/6543.gpg
  D2CF76DA95F201E9901532AB3CDE74631F13A748  # Andrew Thornton <art27@cantab.net>, retrieved from https://github.com/zeripath.gpg
  82A110A44DF1A28D50C093BFB853ADA5DA7BBF7A  # jolheiser <john@jolheiser.com>, retrieved from https://github.com/jolheiser.gpg
)

pkgver() {
  cd ${pkgname}
  git describe --tags | sed 's/^v//'
}

prepare() {
  cd ${pkgname}
  export GOPROXY=https://goproxy.cn
#  patch -p1 -i $srcdir/gitea-loong64.patch
#  make deps
  go mod edit -replace=golang.org/x/sys=github.com/golang/sys@v0.0.0-20220622161953-175b2fd9d664
#  go mod edit -replace=github.com/creack/pty=github.com/creack/pty@v1.1.18
  go mod tidy
  make tidy
  make clean-all
#  npx --yes update-browserslist-db@latest
#  npm install caniuse-lite
}

build() {
  cd ${pkgname}
  export CGO_CPPFLAGS="${CPPFLAGS}"
  export CGO_CFLAGS="${CFLAGS}"
  export CGO_CXXFLAGS="${CXXFLAGS}"
  export CGO_LDFLAGS="${LDFLAGS}"
  export EXTRA_GOFLAGS="-buildmode=pie -mod=readonly -modcacherw"
  export LDFLAGS="-linkmode=external -compressdwarf=false -X 'code.gitea.io/gitea/modules/setting.AppWorkPath=/var/lib/gitea/' -X 'code.gitea.io/gitea/modules/setting.CustomConf=/etc/gitea/app.ini'"
  export TAGS="bindata sqlite sqlite_unlock_notify pam"
  export GOPROXY=https://goproxy.cn
#  go mod edit -replace=golang.org/x/sys=github.com/golang/sys@v0.0.0-20220622161953-175b2fd9d664
#  go mod edit -replace=github.com/creack/pty=github.com/creack/pty@v1.1.18
#  go mod tidy
  make tidy
  make -j1
}

check() {
  cd ${pkgname}
  make test
}

package() {
  install -Dm755 ${pkgname}/${pkgname} -t "${pkgdir}"/usr/bin/
  install -Dm644 ${pkgname}/LICENSE -t "${pkgdir}"/usr/share/licenses/${pkgname}/
  install -Dm644 ${pkgname}.service -t "${pkgdir}"/usr/lib/systemd/system/
  install -Dm644 ${pkgname}.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/${pkgname}.conf
  install -Dm644 ${pkgname}.sysusers "${pkgdir}"/usr/lib/sysusers.d/${pkgname}.conf
  install -D ${pkgname}/custom/conf/app.example.ini -t "${pkgdir}"/etc/gitea/
}
sha256sums=('SKIP'
            '9f63a517e8da6865fa6d9e87f6b08fe25ea56285304115e052809663c48dc3d7'
            'b16d02a9f32a17cc14dfa46a980bad795a4ed744627e6342248f60236dc2be43'
            '7e7b798b8ce035c1fb55993ece41c5efb6cad5922708866804fa50ada0cf9fa5'
            'c0cc614ad1f9afc6124174365df000fe09e3774cc38a4690c9ddc696ebef21d8')
